import { defineStore } from 'pinia'

//定义数据并且对外暴露
// store就是定义共享状态的包装对象
// 内部包含四个属性： id 唯一标识 state 完整类型推理，推荐使用箭头函数 存放的数据 getters 类似属性计算，存储放对数据
// 操作的方法  actions 存储数据的复杂业务逻辑方法
// 理解： store类似Java中的实体类， id就是类名， state 就是装数据值的属性  getters就是get方法，actions就是对数据操作的其他方法
export const dialogStatus = defineStore('dialogStatus',
    {
        //必须唯一
        state: () => { // state中用于定义数据
            return {
                show: false, // 是否显示对话框',
                op: 0,
                id: 0,
                name: '',
                fatherId: 0, // 父节点id
            }
        },
        getters: {// 用于定义一些通过数据计算而得到结果的一些方法 一般在此处不做对数据的修改操作
            // getters中的方法可以当做属性值方式使用
            getShow() {
                return this.show
            },
            getId() {
                return this.id
            },
            getPo() {
                return this.op
            },
            getName() {
                return this.name
            }
        },
        actions: { // 用于定义一些对数据修改的方法
            changeShow() {
                this.show = !this.show
            }
        }
    }
)